package com.xiaoshuidi.cloud.module.iot.service;

import com.github.pagehelper.PageInfo;
import com.xiaoshuidi.cloud.module.iot.common.ResultModel;
import com.xiaoshuidi.cloud.module.iot.dal.model.account.AddThirdApiAccountVo;
import com.xiaoshuidi.cloud.module.iot.dal.model.account.CategorysByBrandVo;
import com.xiaoshuidi.cloud.module.iot.dal.pojo.TbAccountDo;

import java.util.List;

/**
 * @author Sky
 * create 2019/05/22
 * email sky.li@ixiaoshuidi.com
 **/
public interface MeChantAccountService {

    /**
     * 根据品牌编号查询该品牌对接品类
     *
     * @param brandNo
     * @return
     */
    ResultModel<List<CategorysByBrandVo>> getCategoryByBrand(String brandNo);

    /**
     * 添加品牌对应的第三方API账号
     *
     * @param tbAccountDo
     * @return
     */
    ResultModel<AddThirdApiAccountVo> addThirdApiAccount(TbAccountDo tbAccountDo) throws Exception;

    /**
     * 根据apiNo查询tb_account记录
     *
     * @param apiNo
     * @return
     */
    ResultModel<TbAccountDo> getThirdApiByApiNo(String apiNo);

    /**
     * 删除品牌对应的第三方API账号
     *
     * @param tbAccountDo
     * @return
     */
    ResultModel deleteThirdApiAccount(TbAccountDo tbAccountDo);

    /**
     * 修改品牌对应的第三方API账号
     *
     * @param tbAccountDo
     * @return
     */
    ResultModel updateThirdApiAccount(TbAccountDo tbAccountDo) throws Exception;

    /**
     * 获取ApiNos
     *
     * @param userId
     * @return
     */
    List<String> getApiNosByUserId();

    /**
     * 获取设备平台账号
     *
     * @param userId
     * @return
     */
    ResultModel<PageInfo<TbAccountDo>> getDeviceAccount(Long userId, Integer pageSize, Integer pageNum);
}
